Application programs for computer systems are written in various high-level languages for permitting processing of data in accordance with a desired computational scheme. Application programs are very often implemented using information from the underlying operating system program. In the organization of a digital computer system, an underlying operating system program acts as an intermediary between the system hardware and the user. The main function of the operating system is to manage resources such as external printers, disk drives, display units, etc. The operating system will provide for the control of these devices as well as the expeditious transfer of both data and control between various hardware components.
Application programmers will very often use control system data (items) to formulate an application program. For instance, an application program may need to access storage information for writing on available memory space. In order to efficiently carry out the write operation, the programmer may need to know certain items associated with writing to a memory disk. Additionally, other items contained within the operating system program such as memory size, the location of certain input/output routines, are necessary to write an application program which efficiently utilizes the computer system hardware for executing the application program.
In one such system implemented on a mainframe computer, the VM/SP system, there are two levels of operating system protocol. The first level, the Control Program (CP) serves, as previously described, to control the actions of the real machine. It also serves to create logical partitions of the main memory of the computer. Each of the logical partitions becomes effectively a separate computer known as a Virtual Machine. A user, gaining access to such a Virtual Machine via a display device or terminal, is given the appearance of having his own computer.
To make this Virtual Machine more usable for problem solving, the second layer of operating system, the Conversational Monitor System (CMS) is loaded into the virtual storage of this Virtual Machine. This second layer of operating system provides such amenities as a file management system, command execution facilities, language processors and communications, to mention just a few features. The operating system keeps track of its own and user actions via collections of data items. Related data items are stored in a structure known as a Control Block or Data Area.
The CMS architecture is described more particularly in IBM documentation entitled "CMS Data Areas and Control Block Logic", copyright IBM Corporation, 1984. This second level of protocol is itself an operating system for each of the virtual machines. Some of the CMS architecture is dedicated to an individual virtual machine and others are allocated to each virtual machine on the basis of need. Common routines, such as input/output routines, are shared among these virtual machines.
As with other operating system programs, the CMS operating system is periodically updated to provide additional features and efficiencies for CMS virtual machine users. The particular items and their locations in the CMS operating system which are used by various application programmers in writing their programs, may change as a result of such revisions. Specifically, Control Block items for the operating system may be stored at a different location than in an earlier version, or in some cases have a different structure. Therefore, it is necessary to recompile each application program written on a previous version of the operating system, replacing the information used in the old operating system with that of a new operating system.
The present invention provides a convenient way for suppliers of an updated version of an operating system to permit an application program to be revised without knowing the actual location of a given item. The application programmer need only request a given item, and the present invention will locate that item and in some instances, permit changes of the item in accordance with an EXTRACT/REPLACE request made by an application programmer.